{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Forecasting using spatio-temporal data with combined Graph Convolution + LSTM model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx": "hidden",
    "tags": [
     "CloudRunner"
    ]
   },
   "source": [
    "<table><tr><td>Run the latest release of this notebook:</td><td><a href=\"https://mybinder.org/v2/gh/stellargraph/stellargraph/master?urlpath=lab/tree/demos/time-series/gcn-lstm-time-series.ipynb\" alt=\"Open In Binder\" target=\"_parent\"><img src=\"https://mybinder.org/badge_logo.svg\"/></a></td><td><a href=\"https://colab.research.google.com/github/stellargraph/stellargraph/blob/master/demos/time-series/gcn-lstm-time-series.ipynb\" alt=\"Open In Colab\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\"/></a></td></tr></table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The dynamics of many real-world phenomena are spatio-temporal in nature. Traffic forecasting is a quintessential example of spatio-temporal problems for which we present here a deep learning framework that models speed prediction using spatio-temporal data. The task is challenging due to two main inter-linked factors: (1) the complex spatial dependency on road networks, and (2) non-linear temporal dynamics with changing road conditions.\n",
    "\n",
    "To address these challenges, here we  explore a neural network architecture that learns from both the spatial road network data and time-series of historical speed changes to forecast speeds on road segments at a future time. In the following we demo how to forecast speeds on road segments through a `graph convolution` and `LSTM` hybrid model.  The spatial dependency of the road networks are learnt through multiple graph convolution layers  stacked over multiple LSTM,  sequence to sequence model, layers that leverage the historical speeds on top of the network structure to predicts speeds in the future for each entity. \n",
    "\n",
    "The architecture of the GCN-LSTM model is inspired by the paper: [T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction](https://ieeexplore.ieee.org/document/8809901).\n",
    "\n",
    "The authors have made available the implementation of their model in their GitHub [repository](https://github.com/lehaifeng/T-GCN).\n",
    "There has been a few differences in the architecture proposed in the paper and the implementation of the graph convolution component, these issues have been documented [here](https://github.com/lehaifeng/T-GCN/issues/18) and [here](https://github.com/lehaifeng/T-GCN/issues/14). The `GCN_LSTM` model in `StellarGraph`  emulates the model as explained in the paper while giving additional flexibility of adding any number of `graph convolution` and `LSTM` layers. \n",
    "\n",
    "Concretely, the architecture of `GCN_LSTM` is as follows:\n",
    "\n",
    "1. User defined number of  graph convolutional layers (Reference: [Kipf & Welling (ICLR 2017)](http://arxiv.org/abs/1609.02907)).\n",
    "2. User defined number of  LSTM layers. The [TGCN](https://ieeexplore.ieee.org/document/8809901) uses GRU instead of LSTM. In practice there are not any remarkable differences between the two types of layers. We use LSTM as they are more frequently used.\n",
    "3. A Dropout and a Dense layer as they experimentally showed improvement in performance and managing over-fitting.\n",
    "\n",
    "## References: \n",
    "\n",
    "* [T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction](https://ieeexplore.ieee.org/document/8809901)\n",
    "* [https://github.com/lehaifeng/T-GCN](https://github.com/lehaifeng/T-GCN)\n",
    "* [Semi-Supervised Classification with Graph Convolutional Networks](http://arxiv.org/abs/1609.02907)\n",
    "\n",
    "**Note: this method is applicable for uni-variate timeseries forecasting.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "nbsphinx": "hidden",
    "tags": [
     "CloudRunner"
    ]
   },
   "outputs": [],
   "source": [
    "# install StellarGraph if running on Google Colab\n",
    "import sys\n",
    "if 'google.colab' in sys.modules:\n",
    "  %pip install -q stellargraph[demos]==1.2.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "nbsphinx": "hidden",
    "tags": [
     "VersionCheck"
    ]
   },
   "outputs": [],
   "source": [
    "# verify that we're using the correct version of StellarGraph for this notebook\n",
    "import stellargraph as sg\n",
    "\n",
    "try:\n",
    "    sg.utils.validate_notebook_version(\"1.2.1\")\n",
    "except AttributeError:\n",
    "    raise ValueError(\n",
    "        f\"This notebook requires StellarGraph version 1.2.1, but a different version {sg.__version__} is installed.  Please see <https://github.com/stellargraph/stellargraph/issues/1172>.\"\n",
    "    ) from None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import sys\n",
    "import urllib.request\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.lines as mlines\n",
    "\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from tensorflow.keras import Sequential, Model\n",
    "from tensorflow.keras.layers import LSTM, Dense, Dropout, Input"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data\n",
    "\n",
    "We apply the GCN-LSTM model to the **Los-loop** data. This traffic dataset\n",
    "contains traffic information collected from loop detectors in the highway of Los Angeles County (Jagadish\n",
    "et al., 2014).  There are several processed versions of this dataset used by the research community working in Traffic forecasting space. \n",
    "\n",
    "This demo is based on the preprocessed version of the dataset used by the TGCN paper. It can be directly accessed from there [github repo](https://github.com/lehaifeng/T-GCN/tree/master/data). \n",
    "\n",
    "This dataset  contains traffic speeds from Mar.1 to Mar.7, 2012 of 207 sensors, recorded every 5 minutes. \n",
    "\n",
    "In order to use the model, we need:\n",
    "\n",
    "* A N by N adjacency matrix, which describes the distance relationship between the N sensors,\n",
    "* A N by T feature matrix, which describes the (f_1, .., f_T) speed records over T timesteps for the N sensors.\n",
    "\n",
    "A couple of other references for the same data albeit different time length are as follows: \n",
    "\n",
    "* [DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING](https://github.com/liyaguang/DCRNN/tree/master/data): This dataset consists of 207 sensors and collect 4 months of data ranging from Mar 1st 2012 to Jun 30th 2012 for the experiment. It has some missing values.\n",
    "* [ST-MetaNet: Urban Traffic Prediction from Spatio-Temporal Data Using Deep Meta Learning](https://github.com/panzheyi/ST-MetaNet/tree/master/traffic-prediction). This work uses the DCRNN preprocessed data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Loading and preprocessing the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import stellargraph as sg"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This demo is based on the preprocessed version of the dataset used by the TGCN paper."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = sg.datasets.METR_LA()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": [
     "DataLoadingLinks"
    ]
   },
   "source": [
    "(See [the \"Loading from Pandas\" demo](../basics/loading-pandas.ipynb) for details on how data can be loaded.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "tags": [
     "DataLoading"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "No. of sensors: 207 \n",
      "No of timesteps: 2016\n"
     ]
    }
   ],
   "source": [
    "speed_data, sensor_dist_adj = dataset.load()\n",
    "num_nodes, time_len = speed_data.shape\n",
    "print(\"No. of sensors:\", num_nodes, \"\\nNo of timesteps:\", time_len)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Let's look at a sample of speed data.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>2006</th>\n",
       "      <th>2007</th>\n",
       "      <th>2008</th>\n",
       "      <th>2009</th>\n",
       "      <th>2010</th>\n",
       "      <th>2011</th>\n",
       "      <th>2012</th>\n",
       "      <th>2013</th>\n",
       "      <th>2014</th>\n",
       "      <th>2015</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>773869</th>\n",
       "      <td>64.375</td>\n",
       "      <td>62.666667</td>\n",
       "      <td>64.00</td>\n",
       "      <td>61.777778</td>\n",
       "      <td>59.555556</td>\n",
       "      <td>57.333333</td>\n",
       "      <td>66.500</td>\n",
       "      <td>63.625</td>\n",
       "      <td>68.750</td>\n",
       "      <td>63.500</td>\n",
       "      <td>...</td>\n",
       "      <td>64.625</td>\n",
       "      <td>65.444444</td>\n",
       "      <td>63.125</td>\n",
       "      <td>62.875</td>\n",
       "      <td>68.375</td>\n",
       "      <td>65.555556</td>\n",
       "      <td>66.625</td>\n",
       "      <td>66.375</td>\n",
       "      <td>64.666667</td>\n",
       "      <td>66.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>767541</th>\n",
       "      <td>67.625</td>\n",
       "      <td>68.555556</td>\n",
       "      <td>63.75</td>\n",
       "      <td>65.500000</td>\n",
       "      <td>67.250000</td>\n",
       "      <td>69.000000</td>\n",
       "      <td>63.875</td>\n",
       "      <td>67.250</td>\n",
       "      <td>65.250</td>\n",
       "      <td>61.500</td>\n",
       "      <td>...</td>\n",
       "      <td>67.125</td>\n",
       "      <td>66.555556</td>\n",
       "      <td>68.125</td>\n",
       "      <td>67.125</td>\n",
       "      <td>67.000</td>\n",
       "      <td>65.111111</td>\n",
       "      <td>66.625</td>\n",
       "      <td>66.375</td>\n",
       "      <td>66.555556</td>\n",
       "      <td>67.125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>767542</th>\n",
       "      <td>67.125</td>\n",
       "      <td>65.444444</td>\n",
       "      <td>60.00</td>\n",
       "      <td>62.555556</td>\n",
       "      <td>65.111111</td>\n",
       "      <td>67.666667</td>\n",
       "      <td>67.875</td>\n",
       "      <td>63.250</td>\n",
       "      <td>63.500</td>\n",
       "      <td>62.500</td>\n",
       "      <td>...</td>\n",
       "      <td>66.500</td>\n",
       "      <td>66.222222</td>\n",
       "      <td>67.625</td>\n",
       "      <td>68.625</td>\n",
       "      <td>68.500</td>\n",
       "      <td>64.111111</td>\n",
       "      <td>65.750</td>\n",
       "      <td>63.750</td>\n",
       "      <td>66.888889</td>\n",
       "      <td>66.375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>717447</th>\n",
       "      <td>61.500</td>\n",
       "      <td>62.444444</td>\n",
       "      <td>59.00</td>\n",
       "      <td>59.888889</td>\n",
       "      <td>60.777778</td>\n",
       "      <td>61.666667</td>\n",
       "      <td>62.375</td>\n",
       "      <td>60.500</td>\n",
       "      <td>63.000</td>\n",
       "      <td>58.125</td>\n",
       "      <td>...</td>\n",
       "      <td>55.625</td>\n",
       "      <td>61.000000</td>\n",
       "      <td>58.750</td>\n",
       "      <td>60.625</td>\n",
       "      <td>61.375</td>\n",
       "      <td>61.111111</td>\n",
       "      <td>64.750</td>\n",
       "      <td>63.750</td>\n",
       "      <td>59.888889</td>\n",
       "      <td>59.250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>717446</th>\n",
       "      <td>66.875</td>\n",
       "      <td>64.444444</td>\n",
       "      <td>66.50</td>\n",
       "      <td>66.777778</td>\n",
       "      <td>67.055556</td>\n",
       "      <td>67.333333</td>\n",
       "      <td>64.375</td>\n",
       "      <td>57.375</td>\n",
       "      <td>65.125</td>\n",
       "      <td>66.625</td>\n",
       "      <td>...</td>\n",
       "      <td>65.625</td>\n",
       "      <td>58.000000</td>\n",
       "      <td>66.625</td>\n",
       "      <td>67.125</td>\n",
       "      <td>64.500</td>\n",
       "      <td>66.000000</td>\n",
       "      <td>67.375</td>\n",
       "      <td>67.625</td>\n",
       "      <td>65.111111</td>\n",
       "      <td>64.250</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 2016 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          0          1      2          3          4          5       6     \\\n",
       "773869  64.375  62.666667  64.00  61.777778  59.555556  57.333333  66.500   \n",
       "767541  67.625  68.555556  63.75  65.500000  67.250000  69.000000  63.875   \n",
       "767542  67.125  65.444444  60.00  62.555556  65.111111  67.666667  67.875   \n",
       "717447  61.500  62.444444  59.00  59.888889  60.777778  61.666667  62.375   \n",
       "717446  66.875  64.444444  66.50  66.777778  67.055556  67.333333  64.375   \n",
       "\n",
       "          7       8       9     ...    2006       2007    2008    2009  \\\n",
       "773869  63.625  68.750  63.500  ...  64.625  65.444444  63.125  62.875   \n",
       "767541  67.250  65.250  61.500  ...  67.125  66.555556  68.125  67.125   \n",
       "767542  63.250  63.500  62.500  ...  66.500  66.222222  67.625  68.625   \n",
       "717447  60.500  63.000  58.125  ...  55.625  61.000000  58.750  60.625   \n",
       "717446  57.375  65.125  66.625  ...  65.625  58.000000  66.625  67.125   \n",
       "\n",
       "          2010       2011    2012    2013       2014    2015  \n",
       "773869  68.375  65.555556  66.625  66.375  64.666667  66.000  \n",
       "767541  67.000  65.111111  66.625  66.375  66.555556  67.125  \n",
       "767542  68.500  64.111111  65.750  63.750  66.888889  66.375  \n",
       "717447  61.375  61.111111  64.750  63.750  59.888889  59.250  \n",
       "717446  64.500  66.000000  67.375  67.625  65.111111  64.250  \n",
       "\n",
       "[5 rows x 2016 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "speed_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see above, there are 2016 observations (timesteps) of speed records over 207 sensors. Speeds are recorded every 5 minutes.  This means that, for a single hour, you will have 12 observations. Similarly, a single day will contain 288 (12x24) observations. Overall, the data consists of speeds recorded every 5 minutes over 207  for 7 days (12X24X7).\n",
    "\n",
    "### Forecasting with spatio-temporal data as a supervised learning problem \n",
    "\n",
    "Time series forecasting problem can be cast as a supervised learning problem. We can do this by using previous timesteps as input features and use the next timestep as the output to predict. Then, the spatio-temporal forecasting question can be modeled as predicting the feature value in the future, given the historical values of the feature for that entity  as well as the feature values of the entities \"connected\" to the entity.  For example, the speed prediction problem, the historical speeds of the sensors are the timeseries and the distance between the sensors is the indicator for connectivity or closeness of sensors."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train/test split\n",
    "\n",
    "Just like for modeling any standard supervised learning problem, we first split the data into mutually exclusive train and test sets. However, unlike, a standard supervised learning problem,  in timeseries analysis, the data is in some chronological time respecting order and the train/test happens along the timeline. Lets say, we use the first `T_t` observations for training and the remaining `T - T_t` of the  total `T` observations for testing.  \n",
    "\n",
    "In the following we use first 80% observations for training and the rest for testing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train_test_split(data, train_portion):\n",
    "    time_len = data.shape[1]\n",
    "    train_size = int(time_len * train_portion)\n",
    "    train_data = np.array(data.iloc[:, :train_size])\n",
    "    test_data = np.array(data.iloc[:, train_size:])\n",
    "    return train_data, test_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_rate = 0.8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train data:  (207, 1612)\n",
      "Test data:  (207, 404)\n"
     ]
    }
   ],
   "source": [
    "train_data, test_data = train_test_split(speed_data, train_rate)\n",
    "print(\"Train data: \", train_data.shape)\n",
    "print(\"Test data: \", test_data.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Scaling\n",
    "It is generally a good practice to  rescale the data from the original range so that all values are within the range of 0 and 1. Normalization can be useful and even necessary when your time series data has input values with differing scales.  In the following we normalize the speed timeseries by the maximum and minimum values of speeds in the train data. \n",
    "\n",
    "Note: `MinMaxScaler` in `scikit learn` library is typically used for transforming data. However, in timeseries data since the features are distinct timesteps, so using the historical range of values in a particular timestep as the range of values in later timesteps, may not be correct.  Hence, we use the maximum and the minimum of the entire range of values in the timeseries to scale and transform the train and test sets respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def scale_data(train_data, test_data):\n",
    "    max_speed = train_data.max()\n",
    "    min_speed = train_data.min()\n",
    "    train_scaled = (train_data - min_speed) / (max_speed - min_speed)\n",
    "    test_scaled = (test_data - min_speed) / (max_speed - min_speed)\n",
    "    return train_scaled, test_scaled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_scaled, test_scaled = scale_data(train_data, test_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sequence data preparation for LSTM\n",
    "\n",
    "We first need to prepare the data to be fed into an LSTM. \n",
    "The LSTM model learns a function that maps a sequence of past observations as input to an output observation. As such, the sequence of observations must be transformed into multiple examples from which the LSTM can learn.\n",
    "\n",
    "To make it concrete in terms of the speed prediction problem, we choose to use 50 minutes of historical speed observations to predict the speed in future, lets say, 1 hour ahead. Hence, we would first  reshape the timeseries data into windows of 10 historical observations for each segment as the input and the speed 60 minutes later is the label we are interested in predicting. We use the sliding window approach to prepare the data. This is how it works:  \n",
    "\n",
    "* Starting from the beginning of the timeseries, we take the first 10 speed records as the 10 input features and the speed 12 timesteps head (60 minutes) as the speed we want to predict. \n",
    "* Shift the timeseries by one timestep and take the 10 observations from the current point as the input features and the speed one hour ahead as the output to predict. \n",
    "* Keep shifting by 1 timestep and picking the 10 timestep window from the current time as input feature and the speed one hour ahead of the 10th timestep as the output to predict, for the entire data.\n",
    "* The above steps are done for each sensor. \n",
    "\n",
    "The function below returns the above transformed timeseries data for the model to train on. The parameter `seq_len` is the size of the past window of information. The `pre_len` is how far in the future does the model need to learn to predict. \n",
    "\n",
    "For this demo: \n",
    "\n",
    "* Each training observation are 10 historical speeds (`seq_len`).\n",
    "* Each training prediction is the speed 60 minutes later (`pre_len`)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "seq_len = 10\n",
    "pre_len = 12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sequence_data_preparation(seq_len, pre_len, train_data, test_data):\n",
    "    trainX, trainY, testX, testY = [], [], [], []\n",
    "\n",
    "    for i in range(train_data.shape[1] - int(seq_len + pre_len - 1)):\n",
    "        a = train_data[:, i : i + seq_len + pre_len]\n",
    "        trainX.append(a[:, :seq_len])\n",
    "        trainY.append(a[:, -1])\n",
    "\n",
    "    for i in range(test_data.shape[1] - int(seq_len + pre_len - 1)):\n",
    "        b = test_data[:, i : i + seq_len + pre_len]\n",
    "        testX.append(b[:, :seq_len])\n",
    "        testY.append(b[:, -1])\n",
    "\n",
    "    trainX = np.array(trainX)\n",
    "    trainY = np.array(trainY)\n",
    "    testX = np.array(testX)\n",
    "    testY = np.array(testY)\n",
    "\n",
    "    return trainX, trainY, testX, testY"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1591, 207, 10)\n",
      "(1591, 207)\n",
      "(383, 207, 10)\n",
      "(383, 207)\n"
     ]
    }
   ],
   "source": [
    "trainX, trainY, testX, testY = sequence_data_preparation(\n",
    "    seq_len, pre_len, train_scaled, test_scaled\n",
    ")\n",
    "print(trainX.shape)\n",
    "print(trainY.shape)\n",
    "print(testX.shape)\n",
    "print(testY.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## StellarGraph Graph Convolution and LSTM model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "from stellargraph.layer import GCN_LSTM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "gcn_lstm = GCN_LSTM(\n",
    "    seq_len=seq_len,\n",
    "    adj=sensor_dist_adj,\n",
    "    gc_layer_sizes=[16, 10],\n",
    "    gc_activations=[\"relu\", \"relu\"],\n",
    "    lstm_layer_sizes=[200, 200],\n",
    "    lstm_activations=[\"tanh\", \"tanh\"],\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_input, x_output = gcn_lstm.in_out_tensors()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Model(inputs=x_input, outputs=x_output)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=\"adam\", loss=\"mae\", metrics=[\"mse\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "history = model.fit(\n",
    "    trainX,\n",
    "    trainY,\n",
    "    epochs=100,\n",
    "    batch_size=60,\n",
    "    shuffle=True,\n",
    "    verbose=0,\n",
    "    validation_data=[testX, testY],\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"model\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 207, 10)]         0         \n",
      "_________________________________________________________________\n",
      "tf_op_layer_ExpandDims (Tens [(None, 207, 10, 1)]      0         \n",
      "_________________________________________________________________\n",
      "reshape (Reshape)            (None, 207, 10)           0         \n",
      "_________________________________________________________________\n",
      "fixed_adjacency_graph_convol (None, 207, 16)           43216     \n",
      "_________________________________________________________________\n",
      "fixed_adjacency_graph_convol (None, 207, 10)           43216     \n",
      "_________________________________________________________________\n",
      "reshape_1 (Reshape)          (None, 207, None, 1)      0         \n",
      "_________________________________________________________________\n",
      "permute (Permute)            (None, None, 207, 1)      0         \n",
      "_________________________________________________________________\n",
      "reshape_2 (Reshape)          (None, None, 207)         0         \n",
      "_________________________________________________________________\n",
      "lstm (LSTM)                  (None, None, 200)         326400    \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 200)               320800    \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 200)               0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 207)               41607     \n",
      "=================================================================\n",
      "Total params: 775,239\n",
      "Trainable params: 689,541\n",
      "Non-trainable params: 85,698\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train loss:  0.05109991133213043 \n",
      "Test loss: 0.0\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    \"Train loss: \",\n",
    "    history.history[\"loss\"][-1],\n",
    "    \"\\nTest loss:\",\n",
    "    history.history[\"val_loss\"][-1],\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sg.utils.plot_history(history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "ythat = model.predict(trainX)\n",
    "yhat = model.predict(testX)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Rescale values\n",
    "\n",
    "Rescale the predicted values to the original value range of the timeseries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Rescale values\n",
    "max_speed = train_data.max()\n",
    "min_speed = train_data.min()\n",
    "\n",
    "## actual train and test values\n",
    "train_rescref = np.array(trainY * max_speed)\n",
    "test_rescref = np.array(testY * max_speed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Rescale model predicted values\n",
    "train_rescpred = np.array((ythat) * max_speed)\n",
    "test_rescpred = np.array((yhat) * max_speed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Measuring the performance of the model\n",
    "\n",
    "To understand how well the model is performing, we compare it against a naive benchmark.\n",
    "\n",
    "1. Naive prediction: using the most recently **observed** value as the predicted value. Note, that albeit being **naive** this is a very strong baseline to beat. Especially, when speeds are recorded at a 5 minutes granularity,  one does not expect many drastic changes within such a short period of time. Hence, for short-term predictions naive is a reasonable good guess."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Naive prediction benchmark (using latest observed value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Naive prediction benchmark (using previous observed value)\n",
    "\n",
    "testnpred = np.array(testX)[\n",
    "    :, :, -1\n",
    "]  # picking the last speed of the 10 sequence for each segment in each sample\n",
    "testnpredc = (testnpred) * max_speed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total (ave) MAE for NN: 3.8822542511393068\n",
      "Total (ave) MAE for naive prediction: 5.619645381284217\n",
      "Total (ave) MASE for per-segment NN/naive MAE: 0.6846969434482696\n",
      "...note that MASE<1 (for a given segment) means that the NN prediction is better than the naive prediction.\n"
     ]
    }
   ],
   "source": [
    "## Performance measures\n",
    "\n",
    "seg_mael = []\n",
    "seg_masel = []\n",
    "seg_nmael = []\n",
    "\n",
    "for j in range(testX.shape[-1]):\n",
    "\n",
    "    seg_mael.append(\n",
    "        np.mean(np.abs(test_rescref.T[j] - test_rescpred.T[j]))\n",
    "    )  # Mean Absolute Error for NN\n",
    "    seg_nmael.append(\n",
    "        np.mean(np.abs(test_rescref.T[j] - testnpredc.T[j]))\n",
    "    )  # Mean Absolute Error for naive prediction\n",
    "    if seg_nmael[-1] != 0:\n",
    "        seg_masel.append(\n",
    "            seg_mael[-1] / seg_nmael[-1]\n",
    "        )  # Ratio of the two: Mean Absolute Scaled Error\n",
    "    else:\n",
    "        seg_masel.append(np.NaN)\n",
    "\n",
    "print(\"Total (ave) MAE for NN: \" + str(np.mean(np.array(seg_mael))))\n",
    "print(\"Total (ave) MAE for naive prediction: \" + str(np.mean(np.array(seg_nmael))))\n",
    "print(\n",
    "    \"Total (ave) MASE for per-segment NN/naive MAE: \"\n",
    "    + str(np.nanmean(np.array(seg_masel)))\n",
    ")\n",
    "print(\n",
    "    \"...note that MASE<1 (for a given segment) means that the NN prediction is better than the naive prediction.\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot violin plot of MAE for naive and NN predictions\n",
    "fig, ax = plt.subplots()\n",
    "# xl = minsl\n",
    "\n",
    "ax.violinplot(\n",
    "    list(seg_mael), showmeans=True, showmedians=False, showextrema=False, widths=1.0\n",
    ")\n",
    "\n",
    "ax.violinplot(\n",
    "    list(seg_nmael), showmeans=True, showmedians=False, showextrema=False, widths=1.0\n",
    ")\n",
    "\n",
    "line1 = mlines.Line2D([], [], label=\"NN\")\n",
    "line2 = mlines.Line2D([], [], color=\"C1\", label=\"Instantaneous\")\n",
    "\n",
    "ax.set_xlabel(\"Scaled distribution amplitude (after Gaussian convolution)\")\n",
    "ax.set_ylabel(\"Mean Absolute Error\")\n",
    "ax.set_title(\"Distribution over segments: NN pred (blue) and naive pred (orange)\")\n",
    "plt.legend(handles=(line1, line2), title=\"Prediction Model\", loc=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Plot of actual and predicted speeds on a sample sensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5pslSfPmzQv7+n/605905513KifHZfPBgwd3256VK1fq+uuvV2FhoYqKinTDDTfob3/7mySpoqJC1dXVkqQpU6aotra2F185AEAKVPkIfACAdJSwCp8x5qeSrpa0z1pb5e0bLOmXkkZLqpV0o7X2QK/frAeVuEQJndnSv19YWChJam9vV0lJidZHqEAmc2bMgUF/jfTv358unQAQB0VF0v79BD4AQHpKZIXvGUk1Ifvuk/S6tXaspNe9+33aBx98oDfeeEOStHTpUl100UWdHh80aJAqKiq0bNkySW6B8w0bNkiSpk+frueff16StGTJkrCvf/nll+vJJ5/UiRMnJEmNjY2SpOLiYh05cqTL8TNmzNBvfvMbtbS0qLm5WS+++KJmzJgRh68UABAOFT4AQDpLWOCz1v5VUmPI7mslPevdflbSdYl6/2Q555xztGjRIlVWVurAgQNauHBhl2OWLFmip59+WpMmTdKECRP00ksvSZIee+wxLVq0SOeee6727NkT9vVvv/12nXnmmZo4caImTZqkpUuXSpIWLFigmpqajklbfJMnT9Ztt92madOm6YILLtDtt9+u8847L85fNQDA5we+aGfpBAAgGYy1NnEvbsxoSa8Edek8aK0t8W4bSQf8+92ZOnWqXbt2bad9mzdvVmVlZdzbHI3a2lpdffXV2rhxY0rbEU/p8LkCQF/yqU9Jf/yjtG6dxP+vAQASxRjzlrV2arTPS9mkLdYlzYhp0xizwBiz1hizdv/+/UlsGQAAPUeXTgBAOkt24PvQGDNMkrztvkgHWmufstZOtdZOHTp0aNIaGI3Ro0dnVHUPABA9Ah8AIJ0lO/C9LOlW7/atkl5K8vsDABBXBD4AQDpLWOAzxjwn6Q1J5xhjdhtjPi/pQUmXG2O2SrrMuw8AQJ9F4AMApLOErcNnrb05wkMzE/WeAAAkG7N0AgDSWcICHwAA2WDWLGnPHmnQoFS3BACArlI2S2dfd/DgQT3xxBOpbgYAIMUmT5YWL5aMSXVLAADoisAXo0iB78SJEyloDQAAAAB0ReCL0X333aft27erurpa559/vmbMmKFrrrlG48ePV21traqqqjqOfeihh/Stb31LkrR9+3bV1NRoypQpmjFjhrZs2ZKirwAAAABApsuIMXz33iutXx/f16yulh59NPLjDz74oDZu3Kj169frz3/+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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##all test result visualization\n",
    "fig1 = plt.figure(figsize=(15, 8))\n",
    "#    ax1 = fig1.add_subplot(1,1,1)\n",
    "a_pred = test_rescpred[:, 100]\n",
    "a_true = test_rescref[:, 100]\n",
    "plt.plot(a_pred, \"r-\", label=\"prediction\")\n",
    "plt.plot(a_true, \"b-\", label=\"true\")\n",
    "plt.xlabel(\"time\")\n",
    "plt.ylabel(\"speed\")\n",
    "plt.legend(loc=\"best\", fontsize=10)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbsphinx": "hidden",
    "tags": [
     "CloudRunner"
    ]
   },
   "source": [
    "<table><tr><td>Run the latest release of this notebook:</td><td><a href=\"https://mybinder.org/v2/gh/stellargraph/stellargraph/master?urlpath=lab/tree/demos/time-series/gcn-lstm-time-series.ipynb\" alt=\"Open In Binder\" target=\"_parent\"><img src=\"https://mybinder.org/badge_logo.svg\"/></a></td><td><a href=\"https://colab.research.google.com/github/stellargraph/stellargraph/blob/master/demos/time-series/gcn-lstm-time-series.ipynb\" alt=\"Open In Colab\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\"/></a></td></tr></table>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
